﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace Chequeo_de_Bolsas_Reembolse
{
    class Reporte
    {
        public static void exportarAExcel(DataGridView dgv, string correctas, string incorrectas, string descripcion, string lote, string tiempo, string chequeadas)
        {
            String nombreTabla = "Reporte";
            DateTime fecha = DateTime.Now;
            String sfecha = "";
            sfecha = Convert.ToString(fecha.ToString("yyyy.MM.dd"));
            SaveFileDialog fichero = new SaveFileDialog();
            String rutaExportacion = Application.StartupPath + @"\Reportes\Excel\" + sfecha;

            fichero.Filter = "Excel (*.xls)|*.xls";
            fichero.FileName = nombreTabla + "." + descripcion + "." + lote + ".xls";

            try
            {
                comprobarDirectorio(rutaExportacion);
                fichero.InitialDirectory = rutaExportacion;
                if (fichero.ShowDialog() == DialogResult.OK)
                {
                    Microsoft.Office.Interop.Excel.Application aplicacion;
                    Microsoft.Office.Interop.Excel.Workbook libro_exportacion = null;
                    Microsoft.Office.Interop.Excel.Worksheet hoja_exportacion;
                    aplicacion = new Microsoft.Office.Interop.Excel.Application();
                    //carga template del reporte
                    libro_exportacion = aplicacion.Workbooks.Add(Application.StartupPath + @"\Reportes\Template\ReporteReembolse.xlt");
                    hoja_exportacion =
                        (Microsoft.Office.Interop.Excel.Worksheet)libro_exportacion.Worksheets.get_Item(1);

                    //Recorremos el DataGridView rellenando la hoja de trabajo
                    for (int i = 0; i < dgv.Rows.Count; i++)
                    {
                        for (int j = 0; j < dgv.Columns.Count; j++)
                        {
                          hoja_exportacion.Cells[i + 4, j + 1] = dgv.Rows[i].Cells[j].Value.ToString();
                        }
                    }
                    //cantidad de bolsas chequeadas
                    hoja_exportacion.Cells[5, 7] = chequeadas;
                    //cantidad de correctas
                    hoja_exportacion.Cells[5, 7] = correctas;
                    //cantidad de incorrectas
                    hoja_exportacion.Cells[6, 7] = incorrectas;
                    //tiempo del proceso
                    hoja_exportacion.Cells[7, 7] = tiempo;

                    //guardar el reporte
                    libro_exportacion.SaveAs(fichero.FileName,
                                             Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
                    libro_exportacion.Close(true);
                    aplicacion.Quit();
                    MessageBox.Show("La exportación se realizó correctamente", "Exito", MessageBoxButtons.OK);
                }
            }
            catch (Exception)
            {

                MessageBox.Show("No se pudo realizar la exportación!!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        public static void comprobarDirectorio(String ruta)
        {
            if (!Directory.Exists(ruta))
            {
                Directory.CreateDirectory(ruta);
            }
        }
    }
}
